package kaka.utils.effect
{
	import flash.display.Bitmap;
	import flash.display.BitmapData;
	import flash.geom.Point;
	import flash.geom.Rectangle;

	/**
	 * 位图工具
	 **/
	public class BitmapDataUtils
	{
		public function BitmapDataUtils()
		{
		}
		/**
		 * 根据传入位图缓存数量为 高x宽 块位图
		 * @param bitmapData   要缓存的元位图数据
		 * @param columnCount  位图纵向块数
		 * @param rowCount     位图横向块数 
		 * @return 返回一个数量级 defineHeight x defineWidth BitmapDataInfo类型的数组
		 **/
		public static function bitmapDataBlockCache(bitmapData:BitmapData,columnCount:int,rowCount:int):Array
		{
			/**每一块的高度和宽度**/
			var itemBlockWidth:int=int(bitmapData.width/rowCount);
			var itemBlockHeight:int=int(bitmapData.height/columnCount);
			var bitmapDataBlockList:Array=[];
			for(var i:int=0;i<rowCount;i++)
			{
				for(var j:int=0;j<columnCount;j++)
				{
					/** 
					 * 新建一个小块bitmapData实例
					 * rectangle 要复制原位图的矩形区域
					 * 通过copyPixels方法复制原位图中相应区域到itemBitmapData中
					 **/
					var rectangle:Rectangle=new Rectangle(i*itemBlockWidth,j*itemBlockHeight,itemBlockWidth,itemBlockHeight);
					var itemBitmapData:BitmapData=new BitmapData(itemBlockWidth,itemBlockHeight,true);
					itemBitmapData.copyPixels(bitmapData,rectangle,new Point(0,0));
					bitmapDataBlockList.push(new BitmapDataInfo(itemBitmapData,new Point(rectangle.x,rectangle.y)));
				}
			}
			return bitmapDataBlockList;
		}
		/**
		 * 根据 bitmapDataBlockCache 		方法返回的位图数据 展示效果
		 * bitmapDataUpToDownEffect 		从上至下顺序播放位图效果
		 * bitmapDataOppositeAngleEffect	从左上角到右下角顺寻播放
		 **/
		public static function bitmapDataUpToDownEffect():void{}
		public static function bitmapDataOppositeAngleEffect(bitmapDataBlockList:Array):void
		{
			
		}
	}
}